"""
    1. 创建读取视频对象
        cap = cv.VideoCapture(filepath)
            参数：filepath(视频文件路径
    2.1 视频的属性信息
        retval = cap.get(propId)
            参数：propId：从0~18的数字，每个数字表示视频的属性
                0：cv2.CAP_PROP_POS_MSEC         视频文件的当前位置
                1：cv2.CAP_PROP_POS_FRAMES       从0开始索引帧，帧位置
                2：cv2.CAP_PROP_POS_AVI_RATIO    视频文件的相对位置（0表示开始，1表示结束）
                3：cv2.CAP_PROP_FRAME_WIDTH      视频流的帧宽度
                4：cv2.CAP_PROP_FRAME_HEIGHT     视频流的帧高度
                5：cv2.CAP_PROP_FPS              帧率
                6：cv2.CAP_PROP_FOURCC           编解码器四字符代码
                7：cv2.CAP_PROP_FRAME_COUNT      视频文件的帧
    2.2 修改视频的属性信息
        cap.set(propId, value)
            参数：proid：属性的索引，与上面的表格相对应，value:修改后的属性值
    3. 判断图像是否读取成功
        isornot = cap.isOpened()
            返回值：isornot:读取成功true,否则返回false
    4. 获取视频的一帧图像
        ret, frame = cap.read()
            参数：ret:若获取成功返回True,获取失败，返回False，Frame：获取到的某一帧图像
    5. 调用cv.imshow()显示图像，在显示图像时使用cv.waitkey()设置适当的持续时间，如果太低视频会播放的非常快，如果太高会播放的非常慢，通常情况下我们设置25ms就可以了。
    6. 最后，调用cap.realease()将视频释放掉

"""
import numpy as np
import cv2 as cv

# 1. 获取视频对象
cap = cv.VideoCapture("video/DOG.wmv")

# 2. 判断是否读取成功
while(cap.isOpened()):
    # 3. 获取每一帧图像
    ret, frame = cap.read()
    # 4. 获取成功显示图像
    if ret == True:
        cv.imshow("frame", frame)
    # 5. 每一帧间隔未25ms
    if cv.waitKey(25) & 0xFF == ord("q"):
        break

# 6. 释放视频对象
cap.release()
cv.destroyAllWindows()









